//  @ Project : GagalPanen
//  @ File Name : item.hpp
//  @ Date : 3/9/2011
//  @ Author : Denis
//
//


#if !defined(_ITEM_H)
#define _ITEM_H

#include <fstream>
#include <string>
#include "itemtype.hpp"
#include "gameinterface.hpp"

class Item {
public:

  // normal constructor
  Item(GameInterface* game);

  // load game constructor
  Item(GameInterface* game, std::ifstream& is);

  virtual void save(std::ofstream& os);

  virtual ~Item();

  virtual int getId() = 0;
  virtual std::string getName() = 0;

  /* Sell price */
  virtual int getPrice() = 0;
  virtual ItemType getType() = 0;
  virtual bool isSeed() = 0;
  virtual std::string getDescription() = 0;

protected:
  GameInterface* game_;
};

#endif  //_ITEM_H
